// // ******************************************************************
// //       /\ /|       @file       SubtitleExtractionConfig.cs
// //       \ V/        @brief      字幕提取配置
// //       | "")       @author     Await, 285283010@qq.com
// //       /  |
// //      /  \\        @Modified   2025-02-21 20:02
// //    *(__\_\        @Copyright  Copyright (c) , 2025-02-21 20:02 Await
// // ******************************************************************

using System;

namespace AutomaticSubtitles.Service.Infrastructure.Configuration;

/// <summary>
/// 字幕提取配置
/// </summary>
public class SubtitleExtractionConfig
{
    /// <summary>
    /// 临时文件保留时间（小时），默认48小时
    /// </summary>
    public int TempFileRetentionHours { get; set; } = 48;

    /// <summary>
    /// 是否清理final目录中的文件，默认false
    /// </summary>
    public bool CleanFinalDirectory { get; set; } = false;

    /// <summary>
    /// 是否将字幕文件保存到媒体目录，默认true
    /// </summary>
    public bool SaveSubtitleToMediaDirectory { get; set; } = true;

    /// <summary>
    /// 是否跳过已存在的字幕语言，默认true
    /// </summary>
    public bool SkipExistingLanguages { get; set; } = true;

    /// <summary>
    /// 自动清理临时文件的间隔（小时），默认24小时
    /// </summary>
    public int AutoCleanupIntervalHours { get; set; } = 24;

    /// <summary>
    /// 是否启用自动清理，默认true
    /// </summary>
    public bool EnableAutoCleanup { get; set; } = true;

    /// <summary>
    /// 大型媒体库的临时文件保留时间（小时），默认12小时
    /// </summary>
    public int LargeLibraryTempFileRetentionHours { get; set; } = 12;

    /// <summary>
    /// 媒体库被视为"大型"的阈值（媒体文件数量），默认1000
    /// </summary>
    public int LargeLibraryThreshold { get; set; } = 1000;
}